package com.myPlaneGame.Music;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import java.io.File;

//播放背景音乐（.wav文件）
public class PlayMusic {
    private Clip clip;

    public PlayMusic() {
    }

    //需要传入要播放的文件位置的字符串
    public void start(File file) {
        try {
            //创建相当于音乐播放器的对象
            clip = AudioSystem.getClip();
            //转成可播放的文件
            AudioInputStream audioInput = AudioSystem.getAudioInputStream(file);
            //播放器打开这个文件
            clip.open(audioInput);
            //循环播放
            clip.loop(Clip.LOOP_CONTINUOUSLY);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        //死循环不让主程序结束（swing可不用）
        /*
            while(true){
            }
        */
    }

    public void play(File file) {
        try {
            //创建相当于音乐播放器的对象
            clip = AudioSystem.getClip();
            //转成可播放的文件
            AudioInputStream audioInput = AudioSystem.getAudioInputStream(file);
            //播放器打开这个文件
            clip.open(audioInput);
            //只播放一次
            clip.start();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    //关闭音乐播放
    public void exit() {
        clip.close();//停止音乐播放，下次播放重新开始
    }

    //停止音乐播放
    public void stop() {
        clip.stop();//停止音乐播放，下次播放继续播放
    }
}
